// 由于 webpack 是基于Node进行构建的，所有，webpack的配置文件中，任何合法的Node代码都是支持的
var path = require('path')
// 在内存中，根据指定的模板页面，生成一份内存中的首页，同时自动把打包好的bundle注入到页面底部
// 如果要配置插件，需要在导出的对象中，挂载一个 plugins 节点
var htmlWebpackPlugin = require('html-webpack-plugin')


const VueLoaderPlugin = require('vue-loader/lib/plugin');

module.exports ={
  entry: path.join(__dirname, './src/main.js'), // 入口文件
  output: { // 指定输出选项
    path: path.join(__dirname, './dist'), // 输出路径
    filename: 'bundle.js' // 指定输出文件的名称
  },
  plugins: [ // 所有webpack  插件的配置节点
    new htmlWebpackPlugin({
      template: path.join(__dirname, './src/index.html'), // 指定模板文件路径
      filename: 'index.html' // 设置生成的内存页面的名称
    }),
    new VueLoaderPlugin(),
  ],
  module: {//配置所有第三方 loader 模板的
  	rules: [// 第三方模块的匹配规则
  	   { test: /\.css$/, use: ['style-loader','css-loader']},//处理 css 文件的loader
  	   { test:/\.less$/, use: ['style-loader', 'css-loader', 'less-loader']},//处理 less 文件的 loader
  	   { test:/\.scss$/, use: ['style-loader', 'css-loader', 'sass-loader']},//处理 scss 文件的 loader
  	   { test:/\.(jpg|png|gif|bmp|jpeg)$/, use: 'url-loader?limit=7631&name=[hash:8]-[name].[ext]'}, //处理图片路径的loader
  	     // limit 给定的值，是图片的大小，单位是 byte， 如果我们引用的 图片，大于或等于给定的 limit值，则不会被转为base64格式的字符串， 如果 图片小于给定的 limit 值，则会被转为 base64的字符串
  	   { test: /\.(ttf|eot|svg|woff|woff2)$/, use: 'url-loader' },//处理字体文件的loader
  	   { test: /\.js$/, use: 'babel-loader', exclude: /node_modules/ }, //配置Babel 来转换高级的ES语法
  	   { test: /\.vue/, use: 'vue-loader'}, //处理 .vue文件的loader
    ]
  },
  resolve: {
    alias: { // 修改 Vue 被导入时候的包的路径
      // "vue$": "vue/dist/vue.js"
    }
  }
}